package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AddTargetEvaObjTargetCycleComReqDto
 * @使用场景
 */
@Data
public class AddTargetEvaObjTargetCycleComReqDto
  extends BaseDto
  implements Serializable {

  @ApiModelProperty("周期列表 ")
  List<String> cycleList = new ArrayList<>();

  /**
   * 周期开始时间
   */
  @ApiModelProperty("周期开始时间")
  private Date cycleStartTime;

  /**
   * 周期结束时间
   */
  @ApiModelProperty("周期结束时间")
  private Date cycleEndTime;

  /**
   * 父周期周期类型
   */
  @NotNull(message = "父周期周期类型不能为空")
  @ApiModelProperty("父周期周期类型")
  private String fatherCycleType;

  /**
   * 子周期周期类型
   */
  @ApiModelProperty("子周期周期类型")
  private String subcycleType;

  /**
   * 中期周期类型
   */
  @ApiModelProperty("中期周期类型")
  private String midCycleType;

  /**
   * 中期子周期数量
   */
  @ApiModelProperty("中期子周期数量")
  private Long midSubcycleQuantity;

  /**
   * 是否开启中期 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否开启中期不能为空")
  @ApiModelProperty("是否开启中期")
  private String openMidCycle;

  /**
   * 周期模式 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
   */
  @NotNull(message = "周期模式不能为空")
  @ApiModelProperty("周期模式")
  private String cycleMode;

  /**
   * 评价模板ID
   */
  @NotNull(message = "评价模板ID不能为空")
  @ApiModelProperty("评价模板ID")
  private String evaluationTemplateId;

  /**
   * 批次标识
   */
  @NotNull(message = "批次标识不能为空")
  @ApiModelProperty("批次标识")
  private String batchCode;

}
